75.5.1 启动时执行Flyway数据库迁移
想要在启动时自动运行Flyway数据库迁移,需要将org.flywaydb:flyway-core
添加到你的classpath下。
迁移是一些V<VERSION>__<NAME>.sql
格式的脚本(<VERSION>
是一个下划线分割的版本号,比如'1'或'2_1')。默认情况下,它们存放在classpath:db/migration
文件夹中,但你可以使用flyway.locations
(一个列表)改变它。详情可参考flyway-core中的Flyway
类,查看一些可用的配置,比如schemas。Spring Boot在FlywayProperties中提供了一个小的属性集,可用于禁止迁移,或关闭位置检测。Spring Boot将调用Flyway.migrate()
执行数据库迁移,如果想要更多控制可提供一个实现FlywayMigrationStrategy的@Bean
。
默认情况下,Flyway将自动注入(@Primary
)DataSource
到你的上下文,并用它进行数据迁移。如果想使用不同的DataSource
,你可以创建一个,并将它标记为@FlywayDataSource
的@Bean
-如果你这样做了,且想要两个数据源,记得创建另一个并将它标记为@Primary
,或者你可以通过在外部配置文件中设置flyway.[url,user,password]
来使用Flyway的原生DataSource
。
这是一个Flyway示例,你可以作为参考。